package org.baizhiedu.dynamic;

import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;

/**
 * ClassName: Arround
 * Description:
 * Date: 2022/11/21 PM 9:30:16
 * <p>
 * project: spring5
 * package: org.baizhiedu.dynamic
 * email: 1085844536@qq.com
 * version:
 *
 * @author WangGuojian
 */
public class Around implements MethodInterceptor {

    /**
     * invoke 方法的作用：额外功能书写在 invoke
     * 额外功能     原始方法之前
     * 原始方法之后
     * 原始方法执行之前 之后
     * 确定：原始方法怎么运行
     *
     * @param methodInvocation 额外功能所增加给的那个原始方法
     *                         methodInvocation.proceed() ----> login 运行 register 运行
     * @return 原始方法的返回值
     * @throws Throwable 异常
     */
    @Override
    public Object invoke(MethodInvocation methodInvocation) throws Throwable {
        System.out.println("-----log-----");
        Object ret = methodInvocation.proceed();
        return false;
    }
}
